home *** CD-ROM | disk | FTP | other *** search
/ Gold Medal Software 4 / Gold Medal Software - Volume 4 (Gold Medal) (1994).iso / os2 / sio130d.arj / SIOUSER.INF (.txt) < prev    next >
OS/2 Help File  |  1994-07-28  |  45KB  |  1,108 lines

  1.  
  2. ΓòÉΓòÉΓòÉ 1. Introduction ΓòÉΓòÉΓòÉ
  3.  
  4. SIO.SYS and VSIO.SYS are companion device drivers for Version 2 (and up) of the 
  5. OS/2 operating system. 
  6.  
  7. Both drivers (SIO/VSIO) have been coded with performance in mind, possibly 
  8. sacrificing some compatibility.  For this reason, SIO and VSIO are not exact 
  9. replacements for the OS/2 drivers COM and VCOM.  However, all serial 
  10. communications programs tested by the author work correctly using SIO/VSIO. 
  11.  
  12. This manual is intended for the SIO user.  A separate SIO Technical Reference 
  13. Manual is included in the distribution zip. The Technical Reference Manual also 
  14. documents some advanced options and features that are not documented here. 
  15.  
  16. This manual and the software distributed with it is provided with no 
  17. guarantees.  Use it at your own risk. 
  18.  
  19.  
  20. ΓòÉΓòÉΓòÉ 1.1. What is SIO ΓòÉΓòÉΓòÉ
  21.  
  22. SIO is a Serial Input/Output (SIO) communications driver.  It provides an 
  23. interface between application programs and the serial communications hardware. 
  24.  
  25. SIO had been designed as a high performance replacement for the OS/2 device 
  26. driver COM.SYS.  See the Technical Reference Manual for information about the 
  27. known differences between COM.SYS and SIO.SYS. 
  28.  
  29. SIO works with 8250 (type) serial I/O devices.  Such devices include, but are 
  30. not limited to the 8250A, 16450, 16550, 16550A and the 82510.  If you have a PC 
  31. that is an IBM or near compatible which has a serial communication port, it is 
  32. likely that it contains one of these devices.  In addition, SIO supports some 
  33. intelligent serial I/O cards.  See "Intelligent Cards Supported" for additional 
  34. information.  SIO will identify the type of serial devices that it finds and 
  35. display them at load time. 
  36.  
  37. Like other Device Drivers, SIO will do very little standing alone.  There must 
  38. be an application(s) program that makes use of SIO's functions before one will 
  39. benefit from SIO. 
  40.  
  41.  
  42. ΓòÉΓòÉΓòÉ 1.2. What is VSIO ΓòÉΓòÉΓòÉ
  43.  
  44. VSIO is a Virtual Device Driver (VDD).  Virtual device drivers provide services 
  45. for DOS programs executing under OS/2.  Most Virtual Device Drivers emulate a 
  46. specific hardware device and/or BIOS service.  The primary job of a Virtual 
  47. Device Driver is to convert misbehaved DOS input/output into well behaved 
  48. input/output that can be accepted by the OS/2 driver SIO.SYS. 
  49.  
  50. Using the protection mechanism of the 386 (and up) processor, a Virtual Device 
  51. Driver can instruct OS/2 to trap all input/output for given hardware ports. 
  52. Once trapped, the Virtual Device Driver (VDD) appropriately routes information 
  53. to/from the Physical Device Driver (PDD) and to/from the DOS program. 
  54.  
  55. VSIO creates a virtual (imaginary) 16550A or 16450 (UART) in software. 
  56. Additionally VSIO emulates the BIOS INT 14h services. All of the hardware 
  57. registers of the virtual UART are simulated by VSIO.  VSIO does not attempt to 
  58. simulate the timing of the real UARTs.  DOS programs that depend on the timing 
  59. of real hardware UARTs may have problems executing under VSIO. 
  60.  
  61. All DOS programs that execute under VSIO should have RTS/CTS handshaking 
  62. enabled (in the application) even if SIO proper is not using RTS/CTS handshake. 
  63.  
  64. The virtualization (simulation) provided by VSIO is not (and can not be) exact. 
  65. However, most well written DOS programs should not have problems. 
  66.  
  67. VSIO will only work with SIO installed and the versions of SIO/VSIO must match. 
  68. If VSIO refuses to install, you most likely have a version mismatch or COM.SYS 
  69. is still installed.  VSIO will not work with any other device driver like 
  70. COM.SYS. 
  71.  
  72.  
  73. ΓòÉΓòÉΓòÉ 2. Distribution and Support ΓòÉΓòÉΓòÉ
  74.  
  75.  
  76. ΓòÉΓòÉΓòÉ 2.1. Distribution and Ordering ΓòÉΓòÉΓòÉ
  77.  
  78. The entire package collectively known as SIO is ShareWare.  It is not free 
  79. software or freeware.  See LICENSE.TXT and ORDER.TXT for additional 
  80. information.  The ShareWare version of SIO is distributed electronically and 
  81. supports only 4 ports (registered versions can be ordered supporting up to 16 
  82. ports).  One may check their favorite electronic hangout for the latest version 
  83. of SIO.  The latest copy of the ShareWare version is always posted for 
  84. downloading from the BBS at 1-703-494-0098. 
  85.  
  86. Registered versions of SIO are distributed by US Mail, electronically mail and 
  87. from the SIO Distribution and Support BBS.  Users desiring to register 
  88. electronically, may call the BBS and register on line (1-703-494-0098) and 
  89. immediately download their registered version of SIO.  Use the ORDER command at 
  90. the main BBS prompt. 
  91.  
  92. Registrations/Orders can also be placed by phone, mail, FAX, and email.  See 
  93. the front cover of this manual for the phone numbers and addresses.  Also see 
  94. ORDER.TXT for and order form that may be used. 
  95.  
  96.  
  97. ΓòÉΓòÉΓòÉ 2.2. Support ΓòÉΓòÉΓòÉ
  98.  
  99. Extensive testing has been done to insure that this product works on the widest 
  100. possible range of OS/2 V2 (and up) systems.  In most cases, problems can be 
  101. resolved by reading this manual carefully. 
  102.  
  103. Registered users of SIO can update to the latest version using the BBS and its 
  104. UPDATE command.  All variations (number of ports) of SIO are available for 
  105. immediate download from the BBS by registered users. 
  106.  
  107. Support is provided in section 4 of the OS/2 Vendor Forum on CompuServe (GO 
  108. OS2BVEN).  Section 4 of the OS2BVEN Forum is dedicated to the support of SIO. 
  109.  
  110. In addition, support is provided by BBS, Email and FAX.  Voice support would 
  111. overwhelm the author and is not available.  If, after reading the manual 
  112. carefully, you are unable to resolve a problem, you may fill out PROBLEM.TXT 
  113. (adding information as necessary) and Email/FAX it to one of the following: 
  114.  
  115.  
  116.                Email
  117.             CompuServe 71154,575
  118.           Internet p00321@psilink.com
  119.             FAX 1-703-494-0595
  120.             BBS 1-703-494-0098
  121.  
  122. PROBLEM.TXT is included in the distribution ZIP. 
  123.  
  124.  
  125. ΓòÉΓòÉΓòÉ 3. Getting Started ΓòÉΓòÉΓòÉ
  126.  
  127.  
  128. ΓòÉΓòÉΓòÉ 3.1. Installing SIO/VSIO ΓòÉΓòÉΓòÉ
  129.  
  130. SIO is distributed as a ZIP file.  To extract the individual files from the 
  131. distribution file you need the program PKUNZIP or an equivalent.  PKUNZIP is a 
  132. product of PKWARE and can be downloaded from almost any bulletin board system 
  133. (BBS).  You probably already have PKUNZIP and know how to use it, otherwise I 
  134. doubt that you would be reading this.  When PKUNZIP is used to extract the 
  135. various files, -AV should appear after each file name as it is extracted.  In 
  136. addition, the message: 
  137.  
  138.    Authentic files Verified! 
  139.  
  140. should appear after the extraction process.  If this message does not appear, 
  141. or appears with a name other than Raymond L. Gwinn, the file is not an original 
  142. SIO distribution file. 
  143.  
  144. The only file that the basic user actually needs is SIO.SYS. Virtual DOS 
  145. machine (VDM) users will also want VSIO.SYS.  Copy one or both of these files 
  146. to a convenient directory or subdirectory on your system.  An installation 
  147. program (INSTALL.EXE) is provided to install the SIO files and modify your 
  148. CONFIG.SYS 
  149.  
  150.  
  151. ΓòÉΓòÉΓòÉ 3.2. Quick Start ΓòÉΓòÉΓòÉ
  152.  
  153. Create a temporary directory, change into that directory and unzip the SIO 
  154. distribution zip there.  Type INSTALL followed by the enter key.  For a basic 
  155. setup, that is all that is needed. 
  156.  
  157. If you choose to install SIO manually, the following should be done. 
  158.  
  159. BE SURE THAT ANY SERIAL MOUSE DRIVER APPEARS IN THE CONFIG.SYS BEFORE SIO.SYS 
  160.  
  161. If you are going to use standard communications ports, either COM1 or COM2 on 
  162. an ISA buss (AT or clone), or COM1 through COM4 on a PS/2, then add the 
  163. following line to your CONFIG.SYS file: 
  164.  
  165.    DEVICE = SIO.SYS
  166.    DEVICE = VSIO.SYS
  167.  
  168. Be sure to REMark out the COM.SYS and VCOM.SYS device drivers if they exist in 
  169. your CONFIG.SYS. 
  170.  
  171. With the above statements you will be able to use standard COM1 and/or COM2 (if 
  172. they exist) on any PC system known to the author. 
  173.  
  174.  
  175. ΓòÉΓòÉΓòÉ 4. Command Line Options ΓòÉΓòÉΓòÉ
  176.  
  177.  
  178. ΓòÉΓòÉΓòÉ 4.1. Basic Information ΓòÉΓòÉΓòÉ
  179.  
  180. The command line options are included in the command line that loads SIO in the 
  181. CONFIG.SYS file.  VSIO has no command line options.  Command line options are 
  182. usually grouped by port within parenthesis. 
  183.  
  184. If you use only COM1 and/or COM2, at the standard IRQ and port addresses, you 
  185. will not need any command line options.  However, up to four serial 
  186. communications ports, COM1 thru COM4, can be specified at any base port address 
  187. and any IRQ.  On PS/2 systems and some ISA cards, SIO/VSIO supports multiple 
  188. communications devices sharing the same IRQ. 
  189.  
  190.  
  191. ΓòÉΓòÉΓòÉ 4.2. Syntax ΓòÉΓòÉΓòÉ
  192.  
  193. The basic command line syntax is as follows: 
  194.  
  195.    DEVICE=SIO.SYS (Cn, An, In, Ig, Fc) [(Cn, An, In, Ig, Fc)] 
  196.  
  197. Where: 
  198.  
  199. "Cn" is the comm port number (1 thru 4) or the string COM1 thru COMn.  The port 
  200. number may proceeded by an asterisk "*" to indicate that the port may be used 
  201. as a PCMCIA comm port (eg *1 or *COM1).  Note that it is normal for SIO to 
  202. display a warning about not finding anything at PCMCIA ports. 
  203.  
  204. "An" is a hexadecimal number that defines the base hardware I/O port address 
  205. for the communications port.  If this field is left blank, the default I/O port 
  206. address is used for the comm port.  Note that default I/O addresses exist only 
  207. for COM1 through COM4 on AT type systems and for COM1 through COM8 on PS/2 
  208. systems. 
  209.  
  210. "In" is an IRQ number (0 thru 15) or the string IRQ0 thru IRQ15 or the string 
  211. NONE.  It is best if one leaves this field blank and allows SIO to determine 
  212. the IRQ, see AUTOMATIC IRQ ASSIGNMENT below.  The IRQ choice of NONE is 
  213. provided for cards that can work either with or without an IRQ like the Hayes 
  214. ESP. 
  215.  
  216. "Ig" is an ignored parameter.  If exists for compatibility with COM.SYS. 
  217.  
  218. "Fc" is the Forced 16550A chip parameter.  If an F is placed in this position, 
  219. a 16550A UART chip type is forced regardless of the automatically detected chip 
  220. type. 
  221.  
  222.  
  223. ΓòÉΓòÉΓòÉ 4.3. Example Command Lines ΓòÉΓòÉΓòÉ
  224.  
  225. For a PC with COM1 and COM2 of standard configuration, the following command 
  226. line will load SIO correctly: 
  227.  
  228.    DEVICE=SIO.SYS (1, 3F8, 4) (2, 2f8, 3) 
  229.  
  230. A more readable, but identical, command line is: 
  231.  
  232.    DEVICE=SIO.SYS (COM1,3F8,IRQ4) (COM2,2F8,IRQ3) 
  233.  
  234. Forcing a 16550A on COM1 would be as follows: 
  235.  
  236.    DEVICE=SIO.SYS (COM1,3F8,IRQ4,,F) (COM2,2F8,IRQ3) 
  237.  
  238. In a similar manner, up to sixteen serial communications ports (four in the 
  239. Shareware version) can be defined and supported by SIO and VSIO. 
  240.  
  241.  
  242. ΓòÉΓòÉΓòÉ 5. Development and Debugging Tools ΓòÉΓòÉΓòÉ
  243.  
  244.  
  245. ΓòÉΓòÉΓòÉ 5.1. The Poor Man's Line Monitor (PMLM.EXE) ΓòÉΓòÉΓòÉ
  246.  
  247. Simply type PMLM, followed by return, at an OS/2 command line prompt for 
  248. example command lines. 
  249.  
  250. PMLM is basically of interest to developers of comm applications and those 
  251. providing technical support for those applications. This SIO utility is 
  252. released largely (in self defense) in the hope that some users can diagnose 
  253. their own problems.  PMLM's feature of saving trace information to disk will 
  254. only work with registered and beta versions of SIO. 
  255.  
  256. PMLM provides basic line monitoring for OS/2, DOS and Windows comm programs. 
  257. All characters sent or received by application programs are displayed in the 
  258. upper portion of the screen. Receive characters are displayed as "white on 
  259. blue" and transmitted characters are displayed "yellow on violet".  Line 
  260. signals, such as CTS are displayed as "dim white on red" when turned off and 
  261. "bright white on red" when turned on.  In addition, a signals transition to OFF 
  262. is displayed in lower case and a signals transition to ON is displayed in upper 
  263. case. 
  264.  
  265. Status information is displayed in the lower part of the screen. A bright white 
  266. display means the signal is on, a dim white indicates that the signal is off. 
  267. In addition, when bright, Rxoff and Txoff indicate the SIO has sent (Txoff) or 
  268. received (Rxoff) an Xoff, and an Xon is pending. 
  269.  
  270. When a DOS or Windows session uses a comm port, an additional line of signal 
  271. status appears.  This status line shows the state of the virtual UART's 
  272. signals.  Only the signals which MAY be different from the real UART's signals 
  273. are shown. 
  274.  
  275. "Rx Chars" and "Tx Chars" reflects the number of characters in SIO's receive 
  276. and transmit buffers respectively. 
  277.  
  278. The last line on the screen shows the keys (from the keyboard) that PMLM will 
  279. recognize.  The bright character shows the key to hit for the associated 
  280. function.  The font keys will not work in a windowed OS/2 session. 
  281.  
  282. PMLM's command line requires one parameter, the comm port number, and 
  283. optionally accepts an additional parameter giving a save trace file name.  For 
  284. example: 
  285.  
  286.     PMLM 1 COM1INFO.TRC 
  287.  
  288. will monitor COM1 and save ALL of the communications traffic in the file 
  289. COM1INFO.TRC.  The trace files created by PMLM contain exactly the same 
  290. information that is displayed by PMLM, video attributes and all. 
  291.  
  292.  
  293. ΓòÉΓòÉΓòÉ 5.2. Viewing saved trace files ΓòÉΓòÉΓòÉ
  294.  
  295. VIEWPMLM.EXE may be used to view trace files created by PMLM. VIEWPMLM.EXE 
  296. requires one parameter, the trace file name.  The user can use the keys UP, 
  297. DOWN, PAGEUP, PAGEDOWN, HOME, and END to navigate the saved trace file. 
  298. Registered SIO users may freely distribute VIEWPMLM.EXE (along with saved trace 
  299. files) to anyone for technical support purposes. 
  300.  
  301. VIEWPMLM can be used in native DOS, in DOS sessions under OS/2, and in OS/2 
  302. sessions.  This means that even those developers and support people need not 
  303. have OS/2 to view the captured communications data created by PMLM. 
  304.  
  305.  
  306. ΓòÉΓòÉΓòÉ 5.3. SIO's Utility (SU.EXE) ΓòÉΓòÉΓòÉ
  307.  
  308. This utility program has several useful commands.  You can obtain a list of the 
  309. available commands by typing SU at any command line prompt without any 
  310. parameters.  One very useful command is SU IRQS.  This command will show IRQs 
  311. that are currently free for use.  Commands are provided allowing user control 
  312. (missing from MODE) are available.  Status commands provide a wealth of 
  313. diagnostic information.  Some command line examples follow: 
  314.  
  315.     SU 1 MODE
  316.     su about
  317.     SU 1 lock 57600
  318.  
  319.  
  320. ΓòÉΓòÉΓòÉ 6. Intelligent Cards Supported ΓòÉΓòÉΓòÉ
  321.  
  322.  
  323. ΓòÉΓòÉΓòÉ 6.1. Hayes ESP ΓòÉΓòÉΓòÉ
  324.  
  325. Only the ESP II is supported, the original ESP (ESP I in many PS/2 systems) is 
  326. not supported.  The SIO command line must contain the ESP's enhanced I/O port 
  327. address.  For bit rates exceeding 180000bps the IRQ MUST be specified for the 
  328. master port. For lower date rates NONE may be specified for the IRQ. SIO does 
  329. not search for the ESP ports as the Hayes drivers do under DOS/Windows.  This 
  330. searching can (will) break things under OS/2.  The SIO command line for an ESP 
  331. at I/O port 180h using IRQ14 would be as follows: 
  332.  
  333. DEVICE=path\SIO.SYS (COM1,180,IRQ14) 
  334.  
  335. If you would like the above reflected to DOS sessions as a standard COM1, then 
  336. use the following command line: 
  337.  
  338. DEVICE=path\SIO.SYS (COM1,180:3F8,IRQ14:IRQ4) 
  339.  
  340. Note that the numbers after the colons ":" are the address and IRQ of where the 
  341. port appears to DOS software running under OS/2. 
  342.  
  343. Any IRQ specified for an ESP slave port is ignored.  For those that like to 
  344. have a clean looking CONFIG.SYS, SIO will accept NONE as the IRQ specification 
  345. of an ESP slave port. 
  346.  
  347. If you wish to use the ESP in Compatibility Mode, simply specify the base port 
  348. address that the ESP's compatibility mode is configured for (ie 3F8 when 
  349. configured for COM1). 
  350.  
  351.  
  352. ΓòÉΓòÉΓòÉ 6.2. Telcor Tport ΓòÉΓòÉΓòÉ
  353.  
  354. The Telcor Tport is supported in both burst mode and 16450 emulation mode. 
  355. When in burst mode, the Tport's 16k FIFOs are enabled.  Additionally in burst 
  356. mode, no IRQ is used by the Tport.  In burst mode, any IRQ specified for the 
  357. Tport is ignored.  For those that like to have a clean looking CONFIG.SYS, SIO 
  358. will accept NONE as the IRQ specification of a Tport.  An example command line 
  359. defining a Tport card to be used in burst mode; and that is configured for COM1 
  360. follows: 
  361.  
  362. DEVICE=path\SIO.SYS (COM1,Tport@3F8,NONE:IRQ4) 
  363.  
  364. The Tport's 16450 Emulation mode simply uses a normal SIO command line. eg: 
  365.  
  366. DEVICE=path\SIO.SYS (COM1,3F8,IRQ4:IRQ4) 
  367.  
  368. In both examples the "IRQ4" following the colon above, means that the virtual 
  369. IRQs are to be sent to a VDM on IRQ4. 
  370.  
  371.  
  372. ΓòÉΓòÉΓòÉ 7. PCMCIA ΓòÉΓòÉΓòÉ
  373.  
  374. OS/2 Version 2.1 introduced limited PCMCIA support which includes PCMCIA 
  375. modems.  I am told that the PCMCIA support will be changed in the future, so 
  376. the following information may change. 
  377.  
  378. SIO supports PCMCIA comm ports or modems.  However, several other device 
  379. drivers or programs are needed to use a PCMCIA modem under OS/2.  One of the 
  380. needed drivers is provided with OS/2 version 2.1 and is called PCMCIA.SYS which 
  381. provided "Card Services". 
  382.  
  383. Another needed driver, "Socket Services", is usually supplied by the computer 
  384. manufacturer (or supplier). 
  385.  
  386. A third driver is usually supplied by the modem manufacture (or supplier). 
  387. This driver is referred to as the "Client Driver" and may also be called the 
  388. modem enabler. 
  389.  
  390. What all of the above boils down to is that these drivers, or their equivalents 
  391. are needed to enable the PCMCIA modem.  Once enabled, SIO can then use the 
  392. modem. 
  393.  
  394. The Client Driver (or equivalent) usually allows the modems I/O address and IRQ 
  395. to be assigned.  If so, the address and IRQ assigned at the Client Driver must 
  396. match an address/IRQ combination for a comm port known to SIO.  This is not a 
  397. problem if one is using standard addresses and IRQs for the comm ports. 
  398.  
  399. If the OS/2 drivers are not available, you can also try to enable your PCMCIA 
  400. modem using a DOS VDM and drivers/programs supplied for DOS.  This has worked 
  401. for many users. 
  402.  
  403.  
  404. ΓòÉΓòÉΓòÉ 7.1. IBM's ThinkPad EasyPlaying System ΓòÉΓòÉΓòÉ
  405.  
  406. IBM has released a set of PCMCIA drivers and DLLs for use with the ThinkPad 
  407. 750.  The drivers and DLLs are included in a file named UT750.EXE which can be 
  408. downloaded from a library in the THINKPAD forum on CompuServe.  This set of 
  409. drivers seems to be generic for ISA systems and any MCA system.  That is, the 
  410. drivers and DLLs do not seem to be specific to the ThinkPad 750 and will work 
  411. on any ISA system (I think). 
  412.  
  413. EasyPlaying driver sequence in CONFIG.SYS 
  414.  
  415. I managed to get the EasyPlaying system up on my ThinkPad 720c (MCA 
  416. architecture) by replacing two of the ISA drivers with two of the 720's PCMCIA 
  417. drivers.  I used the 750c utilities disk and executed PCMINST2 from drive A and 
  418. let it do its thing.  I then went into the config.sys file and replaced the ISA 
  419. driver names with the MCA driver names, shuffled the drivers around (SIO.SYS 
  420. must be loaded before AUTODRV2.SYS).  Anyhow, the logical sequence of all the 
  421. drivers ended up as shown below. 
  422.  
  423. DEVICE=D:\THINKPAD\PCMCIA.SYS
  424. DEVICE=D:\OS2\MDOS\VPCMCIA.SYS
  425.  
  426. DEVICE=D:\OS2\MDOS\VMOUSE.SYS
  427. DEVICE=D:\OS2\POINTDD.SYS
  428. DEVICE=D:\OS2\MOUSE.SYS
  429.  
  430. DEVICE=D:\SIO\SIO.SYS (*COM2)
  431. DEVICE=D:\SIO\VSIO.SYS
  432.  
  433. DEVICE=D:\THINKPAD\EZPLAY2.SYS
  434. DEVICE=D:\THINKPAD\AUTODRV2.SYS D:\THINKPAD\AUTODRV2.INI
  435. DEVICE=C:\PCMCIA\IBM2SS02.SYS
  436. DEVICE=C:\PCMCIA\ICRMU02.SYS
  437. DEVICE=D:\THINKPAD\$ICPMOS2.SYS
  438.  
  439. The only difference for ISA systems is that the drivers IBM2SS02.SYS and 
  440. ICRMU02.SYS are suffixed with a 1.  That is, ISA systems use IBM2SS01.SYS and 
  441. ICRMU01.SYS.  The PCMCIA modem was loaded at COM2 in the above example.  No 
  442. changes were made in the AUTODRV2.INI file. 
  443.  
  444.  
  445. ΓòÉΓòÉΓòÉ 8. Automatic IRQ Assignment ΓòÉΓòÉΓòÉ
  446.  
  447. SIO will automatically locate the IRQ that a comm port is attached to.  The IRQ 
  448. used by SIO for a given comm port is assigned in the following manner: 
  449.  
  450. 1 - If an IRQ is specified in the SIO command line then that IRQ is used. 
  451. However, SIO will display a warning message if the IRQ seems to be other than 
  452. specified. 
  453.  
  454. 2 - If no IRQ is specified in the command line, and if SIO detected the IRQ 
  455. then the detected IRQ is used. 
  456.  
  457. 3 - If no IRQ is specified in the command, and if SIO could NOT detect an IRQ 
  458. then the default IRQ for the comm port is used. SIO will also display a warning 
  459. message in this case. 
  460.  
  461. The following STYLE command line is recommended for all but the most unusual 
  462. systems.  That is, specify only the port number for those above COM2 (to tell 
  463. SIO to support those ports) and let SIO do the rest. 
  464.  
  465.     DEVICE=SIO.SYS (COM3) (COM4) 
  466.  
  467. If you do not have a COM3 or COM4, or if the mouse is using the only comm port 
  468. above COM2 then the following command line should be used. 
  469.  
  470.     DEVICE=SIO.SYS 
  471.  
  472.  
  473. ΓòÉΓòÉΓòÉ 9. DOS Settings ΓòÉΓòÉΓòÉ
  474.  
  475. VSIO gets its operational characteristics from DOS Settings. Several basic DOS 
  476. Settings are provided.  They specify the type of access (if any) that a DOS 
  477. program is to have to a communication port that SIO controls. 
  478.  
  479. All of the DOS Settings default to what most users should use most of the time 
  480. (which is ON).  Also, all of the DOS Settings are prefixed with SIO_. 
  481.  
  482. If any of the DOS settings are changed, then the DOS session must be restarted 
  483. from the Work Place Shell for the changed setting to take affect. 
  484.  
  485.  
  486. ΓòÉΓòÉΓòÉ 9.1. SIO_Allow_Access_COMn ΓòÉΓòÉΓòÉ
  487.  
  488. "SIO_Allow_Access_COMn" (where n is 1 thru 4).  This DOS setting defaults to 
  489. ON.  If this setting is turned OFF for any or all of the ports, the DOS program 
  490. will not be allowed any access to that port(s). 
  491.  
  492.  
  493. ΓòÉΓòÉΓòÉ 9.2. SIO_Virtualize_COM_Ports ΓòÉΓòÉΓòÉ
  494.  
  495. "SIO_Virtualize_COM_Ports"  This Dos setting defaults to ON and it applies to 
  496. all communications ports used by the DOS session.  When ON, this DOS setting 
  497. means VSIO is to act as an interface between the SIO and the DOS program.  When 
  498. OFF, the DOS program is given direct access to the hardware ports of the 
  499. UART(s). 
  500.  
  501.  
  502. ΓòÉΓòÉΓòÉ 9.3. SIO_Virtualize_16550A ΓòÉΓòÉΓòÉ
  503.  
  504. "SIO_Virtualize_16550A"  This DOS setting defaults to ON and it applies to all 
  505. communications ports used by the DOS session.  When ON, VSIO will simulate a 
  506. 16550A.  When OFF, VSIO will simulate a 16450.  Some DOS programs may not work 
  507. when a 16550A is simulated.  Turning this setting off may allow the program to 
  508. work (but slower). 
  509.  
  510.  
  511. ΓòÉΓòÉΓòÉ 9.4. SIO_Share_Access_With_OS/2 ΓòÉΓòÉΓòÉ
  512.  
  513. "SIO_Share_Access_With_OS/2"  This DOS setting defaults to ON and it applies to 
  514. all communications ports used by the DOS session.  When ON, SIO will allow an 
  515. OS/2 session to access a communications port which the DOS session first opened 
  516. (and has not closed).  If set to OFF, then the DOS session will have exclusive 
  517. use of the communications port(s) that it uses.  This setting does not apply to 
  518. a second DOS session attempting to access a communications port,  two different 
  519. DOS sessions are never allowed to access the same port at the same time. 
  520. Additionally, this setting has no affect upon the access to a communications 
  521. port which is first opened by an OS/2 session. 
  522.  
  523.  
  524. ΓòÉΓòÉΓòÉ 9.5. SIO_Screen_Sync_Kludge ΓòÉΓòÉΓòÉ
  525.  
  526. "SIO_Screen_Sync_Kludge" DOS setting.  This DOS setting defaults to off and it 
  527. applies to all communications ports used by the DOS session.  Some DOS BBS 
  528. programs (such as Wildcat) and many DOS Door programs attempt to synchronize 
  529. the screen output with transmitted data.  This plays havoc with a multi tasking 
  530. system like OS/2 and results in very slow transmitted data.  When this setting 
  531. is on, an attempt is made to fake out these misbehaved programs and allow them 
  532. to run at normal transmit speed.  This setting should not be turned on unless 
  533. you experience VERY slow transmission from a DOS program. 
  534.  
  535.  
  536. ΓòÉΓòÉΓòÉ 9.6. DOS Settings to Control Mode ΓòÉΓòÉΓòÉ
  537.  
  538.  
  539. ΓòÉΓòÉΓòÉ 9.6.1. All of the DOS Settings that begin with "SIO_Mode"  allows one to ΓòÉΓòÉΓòÉ
  540.  
  541. construct a MODE command for a DOS session.  These settings apply to SIO 
  542. proper, and not necessarily to the DOS program itself. For example, if you set 
  543. XON/XOFF handshake with the appropriate SIO_Mode setting, you are specifying 
  544. that SIO is to implement the handshaking.  The DOS application itself will be 
  545. unaware of this handshaking.  This can be very confusing, so think it through 
  546. before you start changing the defaults. 
  547.  
  548. The "SIO_Mode" settings WILL NOT BE APPLIED IF THE COMM PORT IS ALREADY OPEN 
  549. WHEN THE DOS SESSION FIRST ACCESSES THE COMM PORT. This means that the 
  550. "SIO_Mode" settings will NOT be asserted for spawned DOS comm programs.  That 
  551. is, for spawned DOS comm programs, the mode of operation that is already in 
  552. effect will continue to be in effect and the "SIO_Mode" settings are ignored. 
  553.  
  554.  
  555. ΓòÉΓòÉΓòÉ 9.6.2. SIO_Mode_DTR ΓòÉΓòÉΓòÉ
  556.  
  557. "SIO_Mode_DTR"  This setting has three options that specify how SIO and VSIO 
  558. are to treat the DTR signal.  The there available option are: 
  559.  
  560.      No Change at OPEN or CLOSE.
  561.      Turn ON at OPEN, OFF at CLOSE.
  562.      HandShake Signal, as in DTR/DSR.
  563.  
  564. If either of the first two settings is selected, then basically the DOS 
  565. application has direct control over the DTR signal.  If the second option is 
  566. selected, then DTR will be turned on by SIO when the DOS program first touches 
  567. the comm port. 
  568.  
  569. If the third option is selected, then SIO will use DTR as a handshaking signal. 
  570. That is, DTR will be turned off if SIO can not accept any further receive data. 
  571. In addition, if the DOS application program turns off the Virtual DTR, VSIO 
  572. will stop supplying the DOS application with receive data. 
  573.  
  574.  
  575. ΓòÉΓòÉΓòÉ 9.6.3. SIO_Mode_IDSR ΓòÉΓòÉΓòÉ
  576.  
  577. "SIO_Mode_IDSR"  This setting specifies how SIO is to react to received data 
  578. and the DSR signal.  The two available options are: 
  579.  
  580.      Ignore DSR During Receive.
  581.      Required for Valid Receive Data.
  582.  
  583. If the first option (the default) is selected, then SIO will ignore DSR and 
  584. accept all received data.  If the second option is selected, then SIO will 
  585. ignore received data when the DSR signal is off.  VSIO ignores this DOS 
  586. setting. 
  587.  
  588.  
  589. ΓòÉΓòÉΓòÉ 9.6.4. SIO_Mode_OCTS ΓòÉΓòÉΓòÉ
  590.  
  591. "SIO_Mode_OCTS"  This setting specifies how SIO will react to the CTS signal 
  592. when transmitting data.  The two available options are: 
  593.  
  594.      HandShake Signal, as in RTS/CTS.
  595.      Ignore CTS During Transmit.
  596.  
  597. If the first option (the default) is selected, then SIO will not transmit data 
  598. when the CTS signal is off.  If the second option is selected, then SIO will 
  599. ignore CTS during transmit.  Note that this setting should be set to "Ignore" 
  600. for 3 wire connections like the Seiko Smart Label Printer, and Laplink.  VSIO 
  601. ignores this setting 
  602.  
  603.  
  604. ΓòÉΓòÉΓòÉ 9.6.5. SIO_Mode_RTS ΓòÉΓòÉΓòÉ
  605.  
  606. "SIO_Mode_RTS" This setting has three options that specify how SIO and VSIO are 
  607. to treat the RTS signal.  The there available option are: 
  608.  
  609.      HandShake Signal, as in RTS/CTS.
  610.      No Change at OPEN or CLOSE.
  611.      Turn ON at OPEN, OFF at CLOSE.
  612.  
  613. If either of the last two settings is selected, then basically the DOS 
  614. application has direct control over the RTS signal.  If the last option is 
  615. selected, then RTS will be turned on by SIO when the DOS program first touches 
  616. the comm port. 
  617.  
  618. If the first option (the default) is selected, then SIO will use RTS as a 
  619. handshaking signal.  That is, RTS will be turned off if SIO can not accept any 
  620. further receive data.  In addition, if the DOS application program turns off 
  621. the virtual RTS signal, VSIO will stop supplying the DOS application with 
  622. receive data. 
  623.  
  624.  
  625. ΓòÉΓòÉΓòÉ 9.6.6. SIO_Mode_XON/XOFF ΓòÉΓòÉΓòÉ
  626.  
  627. "SIO_Mode_XON/XOFF"  This setting specifies if (and how) SIO is to use XON/XOFF 
  628. flow control.  The four options are: 
  629.  
  630.      No XON/XOFF flow control by SIO.
  631.      Received XON is flow control.
  632.      Sent XON is flow control.
  633.      Rcvd and Sent XON is flow control.
  634.  
  635. The first option (the default) specifies that SIO is not to use XON/XOFF flow 
  636. control at all.  The second option specifies that SIO is to treat received 
  637. XON/XOFF as flow control, but that SIO must not send XON/XOFF as flow control 
  638. characters.  The third option specifies that SIO may send XON/XOFF as flow 
  639. control characters, but that received XON/XOFF characters are to be treated as 
  640. normal data.  The fourth option turns on XON/XOFF flow control in both 
  641. directions, meaning that all sent and received XON/XOFF characters are flow 
  642. control. 
  643.  
  644.  
  645. ΓòÉΓòÉΓòÉ 10. Configuration Profiles ΓòÉΓòÉΓòÉ
  646.  
  647. I will attempt to provide the DOS Settings that one should try for DOS 
  648. communications programs in this section.  The settings may not work on all 
  649. systems.  I will add to this section as I receive information from users.  All 
  650. DOS Settings that are not given should be at their defaults. 
  651.  
  652.  
  653. ΓòÉΓòÉΓòÉ 10.1. Seiko Smart Label Printer ΓòÉΓòÉΓòÉ
  654.  
  655. I tested the Seiko printer successfully using the following DOS settings for 
  656. SIO: 
  657.  
  658.     SIO_Mode_DTR         No Change at OPEN or CLOSE
  659.     SIO_Mode_FIFO_Load_Count  1.
  660.     SIO_Mode_IDSR        Ignore DSR During Receive
  661.     SIO_Mode_OCTS        Ignore CTS During Transmit
  662.     SIO_Mode_ODSR        Ignore DSR During Transmit
  663.     SIO_Mode_RTS         No Change at OPEN or CLOSE
  664.     SIO_Mode_XON/XOFF     Received XON is flow control
  665.  
  666. In addition, you should run the printer in it's own separate Win-OS/2 session. 
  667.  
  668.  
  669. ΓòÉΓòÉΓòÉ 10.2. IBM's SLIP ΓòÉΓòÉΓòÉ
  670.  
  671. I have been told by many users that a MODE command is required for IBM's SLIP 
  672. program to work correctly.  The recommended MODE command is as follows: 
  673.  
  674.     MODE DTR=ON 
  675.  
  676.  
  677. ΓòÉΓòÉΓòÉ 11. SIO/VSIO and COM/VCOM Differences ΓòÉΓòÉΓòÉ
  678.  
  679. What follows is some of the differences between SIO/VSIO and COM/VCOM that are 
  680. known to the author. 
  681.  
  682. 1 -  COM.SYS will automatically seek out and support four comm ports, COM1 
  683. through COM4.  SIO.SYS will automatically seek out and support only COM1 and 
  684. COM2. If SIO.SYS is to support more than two comm ports, they must be defined 
  685. in the command line that loads SIO.SYS. For example, DEVICE=SIO.SYS (COM3) 
  686. (COM4) will cause SIO.SYS to support four comm ports. 
  687.  
  688. 2 -  In the absence of overrides in the command line, COM.SYS will seek out 
  689. four comm ports in the sequence of I/O ports 3F8h, 2F8h, 3E8h and 2E8h.  The 
  690. first port found in this sequence is given the logical name COM1, the second is 
  691. COM2 etc.  This means that the comm port at 2F8h could become COM1.  In the 
  692. opinion of the author, this confuses some users to frustration. 
  693.  
  694. With no command line overrides, SIO.SYS uses a fixed I/O port concept.  That 
  695. is, COM1 is always at I/O port 3F8h, COM2 is always at 2F8h, etc.  Another way 
  696. of looking at this is;  if no comm port exists at port 3F8h, then you do not 
  697. have a COM1.  SIO.SYS will not move another (found) comm port into the logical 
  698. COM1 slot. 
  699.  
  700. 3 -  VSIO opens a comm port for a DOS session with sharing allowed.  VCOM uses 
  701. an "exclusive use" open for DOS sessions. 
  702.  
  703. 4 -  SIO.SYS always controls the FIFOs of the 16550 UART. SIO.SYS will not 
  704. allow an application program (OS2 or DOS) to disable the FIFOs of a real 16550. 
  705. The application may specify the transmit fifo load count. 
  706.  
  707. 5 -  SIO.SYS will accept any number between 50 and 115200 (921600 if a Hayes 
  708. ESP) as a valid baud rate.  For example, if an application program attempts to 
  709. set a baud rate of 9990 bps, COM.SYS will reject it and SIO.SYS will accept it. 
  710.  
  711. 6 -  SIO/VSIO execute faster than COM/VCOM.  This means that some applications, 
  712. that are timing dependent, may not work under SIO/VSIO that do work under 
  713. COM/VCOM. 
  714.  
  715. 7 -  VSIO optionally (and by default) simulates a 16550A for DOS sessions. 
  716. VCOM simulates a 8250/16450. 
  717.  
  718. 8 -  SIO/VSIO provides more reliable active flow control for DOS sessions.  For 
  719. example, if RTS/CTS handshaking is in use, VSIO processes the RTS settings by 
  720. the DOS program while SIO completely controls the real RTS signal.  COM/VCOM 
  721. simply passes the RTS signal directly to the hardware. 
  722.  
  723. 9 -  COM.SYS will block an application until a write completes. SIO will return 
  724. to the application program immediately if all of the write data will fit into 
  725. SIO's internal buffers. 
  726.  
  727.  
  728. ΓòÉΓòÉΓòÉ 12. Problems and Solutions ΓòÉΓòÉΓòÉ
  729.  
  730. 1 -  Port already in use is displayed. 
  731.  
  732. This message is displayed when the comm port or the IRQ is in use.  If the comm 
  733. port is not actually in use, the IRQ is most likely in use. 
  734.  
  735. 2 -  SIO displays a warning message that the IRQ for a port appears to be 
  736. wrong, but the port works. 
  737.  
  738. SIO probably detected more than one IRQ attached to the comm port.  This 
  739. indicates a possible hardware problem with your system that you may want to 
  740. have checked. 
  741.  
  742. 3 - The modem will not initialize. 
  743.  
  744. Configure your comm program(s) to insert a delay between modem initialization 
  745. characters as they are sent to the modem. 
  746.  
  747. 4 - WinFax locks up during install. 
  748.  
  749. During the WinFax install, temporarily turn OFF the DOS setting 
  750. SIO_Virtualize_COM_Ports.  Once installation is complete, the setting 
  751. SIO_Virtualize_COM_Ports can be restored. 
  752.  
  753. 5 - Telemate does not recognize VX00 as a FOSSIL. 
  754.  
  755. Set the baud rate in Telemate to less than 57600. 
  756.  
  757. 6 -  Comm output is very slow from DOS. 
  758.  
  759. This is a problem common to many DOS BBS and Door programs. They attempt to 
  760. synchronize the local screen with the transmitted data.  That is, they send a 
  761. character, wait until it is sent and then display the character on the local 
  762. screen.  This does not cause a problem for the single tasking DOS environment. 
  763. However, this procedure causes at least two (probably more) context switches in 
  764. the multi- tasking environment of OS2, which in turn brings the processor to 
  765. its knees.  One possible solution is for the programmer to synchronize line by 
  766. line instead of character by character. 
  767.  
  768. 7 -  FaxWorks' driver FMD.SYS cannot access a comm port when SIO is used, but 
  769. works okay with COM.SYS. 
  770.  
  771. The problem may be that the comm port is in use (often by a DOS program).  In 
  772. all cases known to the author, this has 
  773.  
  774. been the case.  That is, FMD.SYS can not access the port because it is in use, 
  775. and FMD.SYS does not report the problem in a manner that is understandable to 
  776. many users. 
  777.  
  778. COM.SYS seems to have a bug that will allow an OS2 device driver (like FMD.SYS) 
  779. to use a comm port when it is in use by a another device driver, and it 
  780. (COM.SYS) does not cause an error when it should.  The exact conditions of this 
  781. is not fully understood by the author and the above supposition may not be 
  782. totally correct. 
  783.  
  784. 8 -  Procomm stops receiving 
  785.  
  786. Procomm seems to have a bug in its implementation of RTS/CTS handshaking.  The 
  787. problem shows up most often when Procomm is windowed.  Under certain 
  788. conditions, Procomm will turn the virtual RTS OFF and does not turn it ON 
  789. again.  This prevents VSIO from sending further data to Procomm if SIO_Mode_RTS 
  790. is set for RTS/CTS handshake.  A solution to the problem that seems to work is 
  791. to set SIO_Mode_RTS to other than RTS/CTS handshake.  Note that SIO_Mode_RTS 
  792. should be set for RTS/CTS handshake under almost all other conditions. 
  793.  
  794. 9 - WinFax does not work well. 
  795.  
  796.  a- Connect problems with recipient's fax station
  797.  
  798.  b- Cannot send more than one page of a multiple page fax
  799.  
  800.  c- Transmission fails between pages
  801.  
  802.  d- Transmitted pages are corrupted, missing parts, or cut off.
  803.  
  804. Class 1 FAX modem:  The modem init strings set by WinFax 3.0 will work in the 
  805. single-layered comm world of DOS and Windows.  However, these modem init 
  806. strings will not work in the multi-layered comm environment used by OS/2. 
  807. Specifically, WinFax 3.0 sets the modem to use only Xon/Xoff flow control. 
  808. Ideally, both Xon/Xoff and Hardware handshaking needs to be set.  If only one 
  809. handshake can be set, set the modem to Hardware handshake.  For USR FAX modems, 
  810. use &H3, for many other modems, the setting is &K3.  Additionally, for WinFax 
  811. 3.04 and up, place the following in your WINFAX.INI file: 
  812.  
  813.        HdwFlowControl=1 
  814.  
  815. Class 2 FAX modem:  It seems to the author that hardware handshake screws up 
  816. some (possibly all) class 2 FAX modems. Therefore, when using a class 2 modem, 
  817. WinFax should be configured to use XON/XOFF handshaking. For WinFax 3.04 and 
  818. up, place the following in your WINFAX.INI file: 
  819.  
  820.    HdwFlowControl=0 
  821.  
  822. The author feels that the inability to use hardware handshake with class 2 FAX 
  823. modems is a serious design deficiency. 
  824.  
  825. 10 - Serial Printer messes up on last page. 
  826.  
  827. Add the following command line to your CONFIG.SYS file: 
  828.  
  829.      RUN=MODE COM1 TO=ON 
  830.  
  831.  
  832. ΓòÉΓòÉΓòÉ 13. IRQ Sharing on ISA ΓòÉΓòÉΓòÉ
  833.  
  834. Sharing the same IRQ for multiple communications ports on ISA systems is not 
  835. for the weak of heart (or mind).  If you have problems with shared IRQs, DO NOT 
  836. contact the author.  Contact the board or computer manufacturer for help. 
  837.  
  838. Some general rules are as follows: 
  839.  
  840. 1 - Two different boards (plugged into different slots) can not share the same 
  841. IRQ.  This is a hardware limitation of ISA systems and can not be corrected by 
  842. software.  This means that you can not plug in two internal modems, set them 
  843. for the same IRQ and expect them to work.  This does not apply to PS/2 systems. 
  844. The problem of multiple boards sharing the same IRQ was corrected in the PS/2's 
  845. buss design. 
  846.  
  847. 2 - SIO can not (will not) share an IRQ with other device drivers at the same 
  848. time.  SIO releases IRQs that it is currently not using.  This is different 
  849. form how COM.SYS works.  This difference may show up as an unexpected "port 
  850. already in use" error that does not occur with COM.SYS.  I have received 
  851. reports that the SDLC drivers try to concurrently share IRQs with the ASYNC 
  852. driver.  SIO.SYS will not allow this while COM.SYS will. 
  853.  
  854.  
  855. ΓòÉΓòÉΓòÉ 14. I/O Port and IRQ Assignments ΓòÉΓòÉΓòÉ
  856.  
  857. I have obtained the following information from various sources. Accuracy is not 
  858. guaranteed.  In fact, nothing in this document is guaranteed.  Addresses and 
  859. IRQs for COM1 and COM2 
  860.  
  861.    COM1 uses 03F8h and IRQ4
  862.    COM2 uses 02F8h and IRQ3
  863.  
  864. Defacto standard for COM3 and COM4 for PC, XT and AT 
  865.  
  866.    COM3 uses 03E8h and IRQ4
  867.    COM4 uses 02E8h and IRQ3
  868.  
  869. Addresses and IRQ for COM3 through COM8 on the PS/2 
  870.  
  871.    COM3 uses 3220h and IRQ3
  872.    COM4 uses 3228h and IRQ3
  873.    COM5 uses 4220h and IRQ3
  874.    COM6 uses 4228h and IRQ3
  875.    COM7 uses 5220h and IRQ3
  876.    COM8 uses 5228h and IRQ3
  877.  
  878. All PCs (known to the author) prior to the PS/2 and EISA only use 10 bits to 
  879. address hardware I/0 ports.  Systems prior to the PS/2 and EISA can not address 
  880. the standard PS/2 addresses for COM3 through COM8.  If an AT or below attempts 
  881. to address COM3 through COM8 using the PS/2 addresses, only the low 10 bits of 
  882. the address are used.  That is, the high digit of the hexadecimal address will 
  883. be ignored.  This means that any reference to COM3 through COM8 will actually 
  884. address ports 220h through 22Fh on older PCs. 
  885.  
  886. One should avoid expansion boards that use ports 220h through 22Fh unless the 
  887. expansion board is a serial I/O board. 
  888.  
  889. SIO will (attempt to) determine the hardware architecture (ISA/EISA and PS/2) 
  890. that it is being executed on and use the appropriate hardware port addresses 
  891. for COM1 thru COM4 as defaults. 
  892.  
  893.  
  894. ΓòÉΓòÉΓòÉ 15. Serial I/O Chips ΓòÉΓòÉΓòÉ
  895.  
  896. The following is a collection of comments developed from hearsay, random 
  897. documents, experience, and technical specifications. So, take it with a grain 
  898. of salt.  Order information from the various manufactures if you want accurate 
  899. information. 
  900.  
  901. Very good reference books are available from National Semiconductor 
  902. Corporation.  They cover most of the SIO devices (also called UARTs) that you 
  903. will find in many PCs and clones.  I am not sure that books can be ordered 
  904. directly from National semiconductor. They may require that you get it from a 
  905. distributor.  In any case, the address on the back of the one manual is: 
  906.  
  907.    National Semiconductor Corporation
  908.    2900 Semiconductor Drive
  909.    P.O. Box 58090
  910.    Santa Clara, CA 95052-8090
  911.  
  912.    Tel:(408)721-5000
  913.    TWX:(910)339-9240
  914.  
  915.  
  916. ΓòÉΓòÉΓòÉ 15.1. 8250 ΓòÉΓòÉΓòÉ
  917.  
  918. As best that I know, the 8250 was the first SIO chip (integrated circuit) that 
  919. was used by the IBM PC and many clones.  In my opinion, it was a poor choice on 
  920. the part of IBM.  I feel many superior devices, at comparable prices, were 
  921. readily available. At that time, I feel the 8251A or the 8530 would have been 
  922. better choices.  But, they used the 8250 and therefore we must use it.  From a 
  923. hardware standpoint the 8250 is a relatively slow device. It is advisable that 
  924. programmers not perform successive inputs or outputs to this device.  It seems 
  925. that software programs can load the various registers of the 8250 faster than 
  926. it can process the information.  The 8250 had a total of 7 registers.  The 
  927. specifications state that 56kb is the maximum baud rate. 
  928.  
  929.  
  930. ΓòÉΓòÉΓòÉ 15.2. 8250A ΓòÉΓòÉΓòÉ
  931.  
  932. I believe the 8250A is the 8250 with some bug fixes.  I have no idea what the 
  933. bugs may have been.  A quick glance at the specifications shows the speed of 
  934. the 8250 and 8250A to be much the same.  The 8250A added an 8th register.  This 
  935. additional register enables software to detect if an 8250 is installed.  The 
  936. specifications state that 56kb is the maximum baud rate. 
  937.  
  938.  
  939. ΓòÉΓòÉΓòÉ 15.3. 16450 ΓòÉΓòÉΓòÉ
  940.  
  941. The 16450 seems to be a speeded up version of the 8250A.  There is no direct 
  942. way (that I know of) for software to detect the difference between an 8250A and 
  943. a 16450.  I believe the 16450 was developed to eliminate the need for software 
  944. to insert delays between successive accesses to the device.  The specifications 
  945. indicate the 16450 is a much faster device than its predecessors. The 
  946. additional speed is only the speed at which the processor can access the 
  947. device.  The maximum baud rate for the 16450 is still stated at 56kb.  However, 
  948. I have been told by some people that they have run the 16450 successfully at 
  949. much higher speeds. I do not believe there was ever a 16450A. 
  950.  
  951.  
  952. ΓòÉΓòÉΓòÉ 15.4. 16C451 ΓòÉΓòÉΓòÉ
  953.  
  954. The 16C451 is a CMOS version of the 16450.  CMOS is a term for the material and 
  955. manufacturing process used to make the part. CMOS typically uses less power 
  956. than other technologies.  If you are not designing hardware, you should view 
  957. the 16C451 as a 16450. 
  958.  
  959.  
  960. ΓòÉΓòÉΓòÉ 15.5. 16550 (Non A) ΓòÉΓòÉΓòÉ
  961.  
  962. It is hard to find a 16550 (Non A).  I was told by National Semiconductor that 
  963. they did everything they could to get all 16550s back.  SIO will detect a 16550 
  964. and tell you if you have one.  I am told that the 16550 was installed in early 
  965. PS/2 systems.  The 16550 was the first shot at a FIFOed version of the 8250 
  966. family from National semiconductor.  However, I was told by National 
  967. Semiconductor that the FIFOs of the 16550 are not reliable and they should not 
  968. be enabled.  SIO will treat a 16550 like a 16450.  In this mode, they are 
  969. reliable.  National Semiconductor would not provide me with a specification for 
  970. the 16550.  However, I suspect its maximum baud rate is the same as the 16550A 
  971. which is 256kb. 
  972.  
  973.  
  974. ΓòÉΓòÉΓòÉ 15.6. 16550A, 16550AF and 16550AFN ΓòÉΓòÉΓòÉ
  975.  
  976. In the manuals that I have, National Semiconductor does not explain the 
  977. differences between the 16550A and the 16550AF.  I suspect the AF part may have 
  978. a few bug fixes.  I believe the N in AFN describes packaging, ceramic versus 
  979. plastic, DIP versus surface mount etc. 
  980.  
  981. In the opinion of the author, there is no substitute for the 16550A (and its 
  982. successors) in the 8250 type series.  The 16550A is compatible with most 
  983. software written for the entire family of 8250 type devices.  Programs that are 
  984. 16550A aware can provide much improved performance over previous devices. 
  985.  
  986. The maximum baud rate for the 16550A is specified at 256kb. However, due to the 
  987. hardware design of the PC et al, 115kb is the maximum baud rate that can be 
  988. programmed by software. 
  989.  
  990. The 16550A can be plugged into the same socket that contains an 8250, 8250A or 
  991. 16450.  If your SIO expansion board has the SIO chips in sockets, you can 
  992. upgrade to the 16550A by simply removing the old chips and replacing them with 
  993. 16550As. 
  994.  
  995. The key to the performance increase of the 16550A is its FIFOs. It has 16 byte 
  996. FIFOs for both transmit and receive data. 
  997.  
  998.  
  999. ΓòÉΓòÉΓòÉ 15.7. 16550s Made by Western Digital ΓòÉΓòÉΓòÉ
  1000.  
  1001. I have been told, but I have not verified for myself, that 16550s made by 
  1002. Western Digital have a problem with their FIFOs when working at 2400 baud or 
  1003. below. 
  1004.  
  1005.  
  1006. ΓòÉΓòÉΓòÉ 15.8. 16C551 ΓòÉΓòÉΓòÉ
  1007.  
  1008. The 16C551 is a CMOS version of the 16550AF.  See the above description of the 
  1009. 16C451 for a discussion of CMOS.  Do not feel you need to upgrade from a 16550A 
  1010. or AF to a 16C551.  There is no gain from an existing users point of view. 
  1011.  
  1012.  
  1013. ΓòÉΓòÉΓòÉ 15.9. 16C552 ΓòÉΓòÉΓòÉ
  1014.  
  1015. The 16C552 is two 16C551s on a single chip. 
  1016.  
  1017. The 16C551 is a CMOS version of the 16550AF.  See the above description of the 
  1018. 16C451 for a discussion of CMOS.  Do not feel you need to upgrade from a 16550A 
  1019. or AF to a 16C551.  There is no gain from an existing users point of view. 
  1020.  
  1021.  
  1022. ΓòÉΓòÉΓòÉ 15.10. 16C554 ΓòÉΓòÉΓòÉ
  1023.  
  1024. The 16C554 is four 16C551s on a single chip. 
  1025.  
  1026. The 16C551 is a CMOS version of the 16550AF.  See the above description of the 
  1027. 16C451 for a discussion of CMOS.  Do not feel you need to upgrade from a 16550A 
  1028. or AF to a 16C551.  There is no gain from an existing users point of view. 
  1029.  
  1030.  
  1031. ΓòÉΓòÉΓòÉ 15.11. 82510 ΓòÉΓòÉΓòÉ
  1032.  
  1033. I believe Intel is the only company that manufactures the 82510. The 82510 is 
  1034. feature rich with several modes of operation.  Its default mode is to operate 
  1035. as a 16450.  The 82510 has a 4 byte FIFO for both transmit and receive data.  A 
  1036. 4 byte FIFO is sufficient to provide significant performance over a basic 
  1037. 16450. 
  1038.  
  1039. The 82510 is small in size.  Therefore, it is found in many lap tops. 
  1040.  
  1041. The 82510 is somewhat of a sleeper.  I believe it would be much more widely 
  1042. used if Intel had promoted it more.  However, given a choice between the 82510 
  1043. and the 16550A, I would select the 16550A. 
  1044.  
  1045.  
  1046. ΓòÉΓòÉΓòÉ 16. Multi-Port Serial I/0 Cards ΓòÉΓòÉΓòÉ
  1047.  
  1048. I have received many requests for information about multi-port serial I/O card. 
  1049. I will describe the boards that I know about (or have heard about) here.  I 
  1050. will add to the list as I receive precise information from manufactures, users, 
  1051. or I develop it myself. 
  1052.  
  1053.  
  1054. ΓòÉΓòÉΓòÉ 16.1. STB 4COM  (ISA buss) ΓòÉΓòÉΓòÉ
  1055.  
  1056. I am very impressed with the STB 4COM card, they have almost got it.  Yes, its 
  1057. the same company that makes the VGA cards.  The 4COM card uses a 16554 which is 
  1058. the equivalent of four 16550A. Comm ports can use IRQs 2/9, 3, 4, 5, 10, 11, 
  1059. 12, and 15.  Any or all ports can share IRQs, and they have done this right.  I 
  1060. tested SIO with all four ports of the 4COM on IRQ12 and they worked correctly. 
  1061. The user can select any of the following I/O port address for a comm port: 3F8, 
  1062. 2F8, 3E8, 2E8, 1A8, 1E8, 1F8, 2A8.  The 4COM card is priced at $110 and I 
  1063. ordered mine from Steve Winter of Prerapture Solutions.  Steve can be reached 
  1064. by telephone at 1-919-286-1502 for information and foreign callers. In the US 
  1065. orders can be placed by calling 1-800-735-5266.  Their mailing address is: 
  1066.  
  1067.    Prerapture Solutions
  1068.    1806 Albany St.
  1069.    Durham NC 27705-3135
  1070.  
  1071.  
  1072. ΓòÉΓòÉΓòÉ 16.2. Gtek BBS550 (ISA buss) ΓòÉΓòÉΓòÉ
  1073.  
  1074. The Gtek BBS550 is a communications card with the equivalent of 8 16550s (in 
  1075. reality two 16C552s) UARTs.  Where were these cards 5 years ago!  Like the STB 
  1076. 4COM, I am very impressed with the BBS550.  It has a wide range of selectable 
  1077. I/O port address, some in the 16 bit range (above 3FFh) which can be very 
  1078. useful.  I tested the board with all 8 ports installed using IRQ3 (although I 
  1079. never had more than 3 ports active at the same time).  The board performed well 
  1080. using shared IRQs. 
  1081.  
  1082. The BBS550 has 8 RJ-45 connectors (10 pin), 6 of which comes directly off the 
  1083. back of the card.  The other two RJ-45 connectors are internal and special 
  1084. cables with grommets are supplier for these 2 ports.  The cables supplied with 
  1085. the BBS550 expands the RJ-45 out to standard DB-25 connectors. 
  1086.  
  1087. Gtek is located in St. Louis Mississippi.  Their phone number is 800-282-4835 
  1088. or 601-467-8048. 
  1089.  
  1090.  
  1091. ΓòÉΓòÉΓòÉ 16.3. Neotech Quad Serial (MCA buss) ΓòÉΓòÉΓòÉ
  1092.  
  1093. Well, I just got my first PS/2 system (for testing of SIO) and I am using the 
  1094. NeoTech Quad Serial card in that system.  What can I say, it works beautifully 
  1095. and interrupt sharing has never been a problem on MCA systems.  This card (as 
  1096. shipped) came with four individual 16450 chips installed, but they were in 
  1097. sockets so I installed 16550 UARTs before I installed the card.  The card has 
  1098. one large connector on the back of the card and the supplied cable expands that 
  1099. to 4 standard DB-25 connectors.  Those of you needing a good 4 port card for an 
  1100. MCA system contact: 
  1101.  
  1102.    Neotech Inc
  1103.    30295 Solon Industrial Pkwy.
  1104.    Solon, Ohio 44139
  1105.  
  1106.    Voice   (216) 248-4114
  1107.    FAX    (216) 248-5701
  1108.